package entidad;

import java.util.ArrayList; 
import java.util.Date;

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.F979F141-1F65-A3E0-1210-505A2435E811]
// </editor-fold> 
public class Presupuesto {

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.D0B65F25-7EBA-DCF2-4DE5-BE98A5DB6954]
    // </editor-fold> 
    private String nombrePlaneacion;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.58CC119D-0277-B8AD-6BEA-BCEBB7CABA59]
    // </editor-fold> 
    private Date fechaPlaneacion;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.C1B65763-7E63-C3D5-D6DB-F4B2EF00ABC2]
    // </editor-fold> 
    private float presupuestoAprobado;
    
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.17434585-B803-D731-8854-6A94B2C0A100]
    // </editor-fold> 
    private float presupuestoComprometido;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.05CCB521-537F-B3D6-AEA5-0CF9E335966A]
    // </editor-fold> 
    private ArrayList<Rubro> mRubro;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.DEE9C17F-3EC8-F04F-863B-CB1778C39149]
    // </editor-fold> 
    public Presupuesto () {
    }

    public Presupuesto(String nombre) {
        this.nombrePlaneacion=nombre;
        this.fechaPlaneacion=new Date();
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.7A520A8A-8462-3202-8301-B60223B1E3EA]
    // </editor-fold> 
    public Date getFechaPlaneacion () {
        return fechaPlaneacion;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.D5AAB5CC-1249-C5CC-4BB1-C470175F3755]
    // </editor-fold> 
    public void setFechaPlaneacion (Date val) {
        this.fechaPlaneacion = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.3C500E10-4357-638E-4FF6-4F4B59DD7BF4]
    // </editor-fold> 
    public ArrayList<Rubro> getRubro () {
        return mRubro;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.3C8BB2FC-5237-C42D-77B5-DB4EECDF57C2]
    // </editor-fold> 
    public void setRubro (ArrayList<Rubro> val) {
        this.mRubro = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.C582AF48-2071-AE5E-66D1-BD873F277B79]
    // </editor-fold> 
    public String getNombrePlaneacion () {
        return nombrePlaneacion;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.9A214507-7049-9C79-9AD0-2491D3D6FDEC]
    // </editor-fold> 
    public void setNombrePlaneacion (String val) {
        this.nombrePlaneacion = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.23A00767-38B5-8A0B-3BBF-6A3FF0887FDB]
    // </editor-fold> 
    public float getPresupuestoAprobado () {
        return presupuestoAprobado;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.0A698A74-E94D-89CE-CF07-ED786FF58016]
    // </editor-fold> 
    public void setPresupuestoAprobado (float val) {
        this.presupuestoAprobado = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.5F21A407-8527-5D18-FEB3-B8332434CE3E]
    // </editor-fold> 
    public float getPresupuestoComprometido () {
        return presupuestoComprometido;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.EB28F230-98E2-F4B4-A5E3-3DC04217CF5F]
    // </editor-fold> 
    public void setPresupuestoComprometido (float val) {
        this.presupuestoComprometido = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.7861F325-8772-7187-3606-F3A86DBD6986]
    // </editor-fold> 
    public void eliminarRubro (int idRubro) {
        //Busca el rubro en el planeacion, lo elimina y actualiza el presupuesto de la planeacion
        for(Rubro r: this.mRubro)
            if(r.getId()==idRubro)
            {
                this.actualizarPresupuestoComprometido(-r.getPresupuestoApropiado());
                mRubro.remove(r);
                break;
            }
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.F5A6A435-65B1-3DBA-7756-F63FC28088CB]
    // </editor-fold> 
    public void actualizarPresupuestoComprometido (float valor) {
        //Al presupuesto comprometido le sumo el valor de entrada
        this.presupuestoComprometido+=valor;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.2F30FFA4-9ED4-984B-F6D7-3D8B48289A6C]
    // </editor-fold> 
    public void agregarRubro (Rubro rubro) {
        //Agrego el rubro al presupuesto
        this.mRubro.add(rubro);
        //y le sumo al presupuesto comprometido
        this.actualizarPresupuestoComprometido(rubro.getPresupuestoApropiado());
    }

}

